package com.tz.platform.tools.excel;

import java.text.DecimalFormat;

import org.apache.poi.hssf.usermodel.HSSFCell;

import com.tz.platform.utils.DateUtil;
import com.tz.platform.utils.StringUtil;

/**
 * 
 * 封装分析查询的Excel导出相关的一些方法 Date 2014-10-24
 */
public class ExcelUtil {

	/**
	 * 处理每个单元格的数据
	 * @param cell
	 * @return
	 */
	public static String getCellStringValue(HSSFCell cell) {
		// 如果该单元格不存在则返回空
		if (null == cell)
			return "";

		// 根据不同的数据类型，对数据进行格式化
		String rValue = "";
		switch (cell.getCellType()) {
			// 空单元格
			case HSSFCell.CELL_TYPE_BLANK:
				rValue = "";
				break;
			// 字符串单元格
			case HSSFCell.CELL_TYPE_STRING:
				rValue = cell.getStringCellValue();
				break;
			case HSSFCell.CELL_TYPE_NUMERIC:
				DecimalFormat df = new DecimalFormat("#0.00");
				rValue = df.format(cell.getNumericCellValue());
				break;
		}
		return rValue;
	}

	public static Long getCellStringDateValue(HSSFCell cell) {
		if (null == cell)
			return 0L;

		Long value = 0L;
		String x = "";
		switch (cell.getCellType()) {
		case HSSFCell.CELL_TYPE_STRING:
			x = cell.getStringCellValue();
			// 重新格式化日期
			if (!StringUtil.msIsEmpty(x)) {
				try {
					value = DateUtil.toDate(x, "yyyy-MM-dd hh:mm:ss").getTime() / 1000;
				} catch (Exception e) {
					value = 0L;
				}

			}
			break;
		default:
			try {
				value = cell.getDateCellValue().getTime() / 1000;
			} catch (Exception e) {
				e.printStackTrace();
			}
			break;
		}
		return value;
	}

}
